const appInstance = getApp()
// 封装的一些全局需要使用的文件

// import { v4 as uuidv4 } from 'uuid'

export const getId = (length=5) => {
  return Number(Math.random().toString().substr(3,length) + Date.now()).toString(36)
}

// 判断是否登陆了
// isSkip - true：跳转到登陆页面
export const checkLogin = (isSkip) => {
  if (!appInstance.globalData.isLogin) {
    const title = isSkip ? '请先登录，将跳转到登陆页面' : '请先登录'
    wx.showToast({
      title,
      mask: true,
      icon: 'none',
      duration: 1000
    })
    if (isSkip) {
      setTimeout(() => {
        wx.switchTab({
          url: '/pages/profile/profile',
        })
      }, 1000)
    }
    return false
  }
  return true
}

// 页面调整函数
// event 携带着跳转页面信息
// data 给跳转页面携带的数据
export const toPage = (event, data=undefined) => {
  // console.log(event);
  const { page } = event.currentTarget.dataset
  const url = `../${page}/${page}`
  wx.navigateTo({
    url,
    success: function(res) {
      // 通过eventChannel向被打开页面传送数据
      res.eventChannel.emit('sendData', data)
    }
  })
}

// 打开 PDF 文件
// event 携带着 PDF 的 URL
export const openPdf = (event) => {
  if (!checkLogin(true)) {
    return
  }
  const fileid = event.currentTarget.dataset.pdfurl
  let fileUrl, filePath
  wx.showLoading({
    title: '文件加载中',
  })
  wx.cloud.getTempFileURL({
    fileList: [fileid],
    success: res => {
      //res.fileList[0].tempFileURL是https格式的路径，可以根据这个路径在浏览器上下载
      fileUrl = res.fileList[0].tempFileURL
      console.log(fileUrl)
      //根据https路径可以获得http格式的路径(指定文件下载后存储的路径 (本地路径)),根据这个路径可以预览
      wx.downloadFile({
        url: fileUrl,
        success: (res) => {
          filePath = res.tempFilePath
          //预览文件
          wx.openDocument({
            filePath,
            success: res => {
              wx.hideLoading()
              console.log('打开文档成功')
            },
            fail: err => {
              console.log('openDocument fail', err);
              wx.showToast({
                title: '文件打开失败，请稍后重试',
                mask: true,
                icon: 'none',
                duration: 1000
              })
            }
          })
        },
        fail: (err) => {
          console.log('downloadFile fail', err) // 手机上调试，是下载文件失败
          wx.showToast({
            title: '文件下载失败，请稍后重试',
            mask: true,
            icon: 'none',
            duration: 1000
          })
        }
      })
    },
    fail: err => {
      console.log('getTempFileURL fail', err);
      wx.showToast({
        title: '文件获取失败，请稍后重试',
        mask: true,
        icon: 'none',
        duration: 1000
      })
    }
  }) 
}
// export const openPdf = (event) => {
//   if (!checkLogin(true)) {
//     return
//   }
//   const { pdfurl } = event.currentTarget.dataset
//   console.log(pdfurl);
  
//   wx.showLoading({
//     title: '文件加载中',
//   })
//   wx.downloadFile({
//     url: pdfurl,
//     success: function (res) {
//       const filePath = res.tempFilePath
//       // 这样就能直接在手机上打开了，但加载有点慢
//       wx.openDocument({
//         filePath: filePath,
//         // showMenu: true,
//         // fileType: 'pdf',
//         success: function (res) {
//           wx.hideLoading()
//           console.log('打开文档成功')
//         },
//         fail(err) {
//           console.log('openDocument fail', err);
//           wx.showToast({
//             title: '文件加载失败，请稍后重试',
//             mask: true,
//             icon: 'none',
//             duration: 1000
//           })
//         }
//       })
//     },
//     fail(err) {
//       console.log('downloadFile fail', err);
//       wx.showToast({
//         title: '文件加载失败，请稍后重试',
//         mask: true,
//         icon: 'none',
//         duration: 1000
//       })
//     },
//     complete() {
//       // 如果隐藏，在手机上会立马隐藏（电脑上不会）
//       // wx.hideLoading()
//       // wx.hideToast()
//     }
//   })
// }

export const formatTime = date => {
  const year = date.getFullYear()
  const month = date.getMonth() + 1
  const day = date.getDate()
  const hour = date.getHours()
  const minute = date.getMinutes()
  const second = date.getSeconds()

  // return `${[year, month, day].map(formatNumber).join('-')}`
  // return `${[year, month, day].map(formatNumber).join('-')} ${[hour, minute, second].map(formatNumber).join(':')}`
  return `${[year, month, day].map(formatNumber).join('-')} ${[hour, minute].map(formatNumber).join(':')}`
}

const formatNumber = n => {
  n = n.toString()
  return n[1] ? n : `0${n}`
}
